iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0
AI/ ML & Data

資料科學的小筆記系列 第 25

Day25:使用dplyr進行資料表連接(由欄位配對判斷)

  • 分享至 

  • xImage
  •  

歷經三天病懨懨的日子後,今天要來紀錄的是由欄位配對判斷進行資料表連接(Column Matching for Joins)

建立範例資料

library(dplyr)

# 建立表格 x
x <- tribble(
  ~A,  ~B, ~C,
  "a", "t",  1,
  "b", "u",  2,
  "c", "v",  3
)

# 建立表格 y
y <- tribble(
  ~A,  ~B, ~D,
  "a", "t",  3,
  "b", "u",  2,
  "d", "w",  1
)

以下針對不同的 left_join() 使用情境進行演示

  1. 匹配相同名稱的欄位
    當兩個資料表的欄位名稱相同時,可以使用 join_by() 指定欄位進行匹配:
# 使用相同名稱的欄位 A 進行匹配
result1 <- left_join(x, y, by = join_by(A))

print(result1)

https://ithelp.ithome.com.tw/upload/images/20240905/20168607k7qshB6puV.png

  1. 匹配多個相同名稱的欄位
    當兩個資料表的多個欄位名稱相同時,可以同時指定多個欄位進行匹配:
# 使用欄位 A 和 B 進行匹配
result2 <- left_join(x, y, by = join_by(A, B))

print(result2)

https://ithelp.ithome.com.tw/upload/images/20240905/20168607TLt8CzIuqG.png

3.匹配不同名稱的欄位
當兩個資料表的欄位名稱不相同時,可以使用邏輯語句來指定匹配的欄位:

# 使用 C 與 D 進行匹配,雖然它們的名稱不同
result3 <- left_join(x, y, by = join_by(C == D))

print(result3)

https://ithelp.ithome.com.tw/upload/images/20240905/20168607FKzIMppUi3.png

4.使用後綴解決名稱衝突
如果合併後兩個資料表中有相同名稱的欄位,suffix 參數可以幫助我們自定義這些欄位的後綴:

# 使用 C 與 D 進行匹配,並指定欄位後綴
result4 <- left_join(x, y, by = join_by(C == D), suffix = c("1", "2"))

print(result4)

https://ithelp.ithome.com.tw/upload/images/20240905/20168607Ut7R8Lnrql.png

參考資料:

  1. Data transformation with dplyr :: Cheatsheet

上一篇
Day24:A流發威中,之後補QQ
下一篇
Day26:使用dplyr的集合運算函數
系列文
資料科學的小筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言